package com.tmxk.day01.lifeng.demo4;
/**
 * Dog  静态特征(属性)昵称   年龄  种类  形状  动态行为(方法)
 * @author 19256
 *
 */
public class Dog extends Pet{
	private String size;
	public String getSize() {
		return size;
	}
	public void setSize(String size) {
		this.size = size;
	}
	
	//提供无参构造
	public Dog() {
	}
	/**
	 * 提供有参构造
	 * @param name  昵称
	 * @param age   年龄
	 * @param size  大小
	 */
	public Dog(String name) {
		//super();
		super.setName(name);
	}
	public Dog(String name, int age, String size) {
		//super();
		super(name);
		super.setAge(age);
		this.size = size;
	}
	
	public Dog(String name, int age, String strain, String size) {
		super(name, age, strain);
		this.size = size;
	}
	
	
	/**
	 * 宠物叫的方法(无参无返回值方法)
	 */
	public void shout() {
		System.out.println(super.getName() + "在汪汪的叫");
	}
	/**
	 * 宠物叫的方法(有参有返回值的方法)
	 * @param name  形参  局部变量  宠物名称
	 * @return 返回宠物叫的信息
	 */
	public String shout(String name) {
		return name + "在汪汪的叫";
	}
	/**
	 * 看门方法
	 */
	public void gatekeeper() {
		System.out.println( super.getName() + "擅长给主人开门");
	}
	@Override
	//子类和父类存在相同的方法名,返回值类型,参数列表,就形成了方法重写
	public void showInfo() {
		//再重写调用下父类的 公共显示宠物基本信息
		super.showInfo();
		System.out.println(",形状是:" +this.size);
	}
	//public void showInfo() {
	//	System.out.println("宠物的基本信息: 昵称是:" + super.getName() +" ,年龄是: " + super.getAge() + 
	//			" ,种类是: " + super.getStrain() + ",形状是:" +this.size);
	//}
 
}
